home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Applications 1996 May / SGI IRIX 6.2 Applications 1996 May.iso / dist / impr_dev.idb / usr / include / printstiff.h.z / printstiff.h
C/C++ Source or Header  |  1996-05-06  |  5KB  |  145 lines

  1. /**************************************************************************
  2.  *
  3.  *           Copyright (c)    1992 Silicon Graphics, Inc.
  4.  *            All Rights Reserved
  5.  *
  6.  *       THIS    IS UNPUBLISHED PROPRIETARY SOURCE CODE OF SGI
  7.  *
  8.  * The copyright notice above does not evidence any actual of intended
  9.  * publication of such source code, and is an unpublished work by Silicon
  10.  * Graphics, Inc. This material contains CONFIDENTIAL INFORMATION that is
  11.  * the property of Silicon Graphics, Inc. Any use, duplication or
  12.  * disclosure not specifically authorized by Silicon Graphics is strictly
  13.  * prohibited.
  14.  *
  15.  * RESTRICTED RIGHTS LEGEND:
  16.  *
  17.  * Use, duplication or disclosure by the Government is subject to
  18.  * restrictions as set forth in subdivision (c)(1)(ii) of the Rights in
  19.  * Technical Data and Computer Software clause at DFARS 52.227-7013,
  20.  * and/or in similar or successor clauses in the FAR, DOD or NASA FAR
  21.  * Supplement. Unpublished - rights reserved under the Copyright Laws of
  22.  * the United States. Contractor is SILICON GRAPHICS, INC., 2011 N.
  23.  * Shoreline Blvd., Mountain View, CA 94039-7311
  24.  **************************************************************************
  25.  *
  26.  * File: printstiff.h
  27.  *
  28.  * Description: API for printing related uses of Stream TIFF files. This
  29.  *    API builds upon the base STIFF API of libstiff.a. All base STIFF
  30.  *    functions may be used with this print file API.
  31.  *
  32.  *    The primary additions to base STIFF introduced by this API are
  33.  *    an expanded image header for the storing of additional tags
  34.  *    in STIFF file.
  35.  *
  36.  *    Refer to the header file stiff.h for additional information about
  37.  *    the STIFF API.
  38.  *
  39.  **************************************************************************/
  40.  
  41.  
  42. #ident "$Revision: 1.6 $"
  43.  
  44.  
  45. #ifndef _PST_PRINTSTIFF_H
  46. #define _PST_PRINTSTIFF_H
  47.  
  48.  
  49. #include "stiff.h"
  50.  
  51.  
  52. /* Resolution units */
  53.  
  54. typedef unsigned short PSTResUnit;
  55.  
  56. #define PST_RES_UNIT_NONE        1    /* No units */
  57. #define PST_RES_UNIT_INCH        2    /* Resolution in inches */
  58. #define PST_RES_UNIT_CENTIMETER     3    /* Resolution in centimeters */
  59.  
  60. /* Dither or halftone method */
  61.  
  62. typedef unsigned short PSTThreshold;
  63.  
  64. #define PST_THRESHOLD_NONE        1    /* No dithering or halftoning */
  65. #define PST_THRESHOLD_ORDERED        2    /* Ordered dither or halftone */
  66. #define PST_THRESHOLD_RANDOM        3    /* Random (e.g. error diffusion) */
  67.  
  68. /* Compression methods */
  69.  
  70. typedef unsigned short PSTCompression;
  71.  
  72. #define PST_COMPRESSION_NONE        1    /* No compression */
  73. #define PST_COMPRESSION_CCITT_3        2    /* CCITT Group 3 */
  74. #define PST_COMPRESSION_CCITT_T4    3    /* CCITT Group 3 T4 */
  75. #define PST_COMPRESSION_CCITT_T6    4    /* CCITT Group 4 T6 */
  76. #define PST_COMPRESSION_LZW        5    /* Lempel-Ziv & Welch */
  77. #define PST_COMPRESSION_JPEG        6    /* Joint Photo Experts Group */
  78. #define PST_COMPRESSION_PACK        32773    /* TIFF pack bits */
  79.  
  80.  
  81. /* Print STIFF IFD tag structure */
  82.  
  83. typedef struct pst_imghdr {
  84.     unsigned long width, height;    /* Image width and height, dots */
  85.     unsigned short bitsPerSample;    /* Bits per color component */
  86.     unsigned short samplesPerPixel;    /* Number of components per dot */
  87.     unsigned long imgbytes;        /* Total number of bytes in image */
  88.     STType type;            /* Image colorspace */
  89.     STPlane plane;            /* Image data format */
  90.     PSTResUnit resUnit;            /* Resolution units */
  91.     unsigned long xRes, yRes;        /* X/Y resolution, dots per resUnit */
  92.     PSTThreshold thresholding;        /* Dither mechanism */
  93.     PSTCompression compression;        /* Compression method */
  94.     char *dateTime;            /* Image time stamp */
  95.     char *hostComputer;            /* Computer image was created on */
  96.     char *software;            /* Software used to create image */
  97.     char *docName;            /* Name of document */
  98.     char *targetPrinter;        /* Destination printer */
  99.     unsigned short pageNumbers[2];    /* Page numbers */
  100.                     /*    [0] = current page number */
  101.                     /*    [1] = total pages (0=unknown) */
  102.     char *driverOptions;        /* Command line options for driver */
  103. } PSTImageHeader;
  104.  
  105.  
  106. /* Private data structure for STSGIPrinting tag data entries */
  107. /*
  108.     The STSGIPrinting private tag item will point to a block
  109.     of these structures, one for each Printing specific data
  110.     item. This structure resembles the STTag structure except
  111.     that the data is written into data regardless of its size.
  112.     There are no pointers to a data section following the
  113.     structure.
  114.  
  115.     The type field uses the same ST_TAG_TYPE defines as a regular
  116.     TIFF tag.
  117. */
  118.  
  119. typedef struct pst_private_data {
  120.     unsigned short private_id;        /* Data item ID */
  121.     STTagType type;            /* Data type */
  122.     unsigned long len;            /* Number of items of type */
  123.     char data[4];            /* Data - dummy for pointer */
  124. } PSTPrivateData;
  125.  
  126.  
  127. /* Private data IDs */
  128.  
  129. #define PSTPrivateDriverOptions        1
  130.  
  131.  
  132. /* Public functions */
  133.  
  134. #ifdef __cplusplus
  135. extern "C" {
  136. #endif
  137. extern int PSTReadImageHeader(STStream *st, PSTImageHeader *hd);
  138. extern int PSTWriteImageHeader(STStream *st, PSTImageHeader *hd, int last);
  139. #ifdef __cplusplus
  140. }
  141. #endif
  142.  
  143.  
  144. #endif  /* _PST_PRINTSTIFF_H */
  145.